Satellite positioning systems (SPSs) broadcast positioning signals from a constellation of satellites that can be used by a device with an SPS receiver to determine the position and/or velocity of the device. Example SPS include Global Positioning System (GPS), Global Navigation Satellite System (GNSS), Galileo, GLONASS, Beidou (Compass), etc. In general, each satellite in an SPS broadcasts signals using at least one carrier frequency. The GPS system, for example, uses two carrier frequencies: 1575. 4 MHz and 1227.6 MHz. Other SPSs may use more than two carrier frequencies or just one carrier frequency.
Signals broadcast from an SPS satellite are conventionally modulated with a pseudo-random code (PRC). The PRC may also be referred to as a spreading code because it spreads the frequency spectrum of the signal over a particular range of frequencies (e.g., 1 MHz bandwidth). An SPS receiver receives the signal from the SPS satellite and determines a time of arrival (TOA) of the signal by correlating the received signal with a locally generated PRC. In this way, the distance between the SPS receiver and the satellite can be determined by, for example, determining the transit time of the signal (the difference in time between when the signal was received and when the satellite transmitted the signal) and multiplying that transit time by the speed of light. The distance between the satellite and the receiver is referred to as the pseudorange or a code phase measurement. Due to the limited bandwidth of the PRC (e.g., 1 MHz) and noise, the accuracy of the pseudorange measurement is on the order of one meter. However, if a carrier phase measurement is performed and used to determine the location of the receiver, the accuracy of the location of the receiver can be increased to on the order of one centimeter.